d794a6
@@ -16,11 +16,10 @@
 package org.springframework.batch.core.listener;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
-import java.util.TreeSet;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.AnnotationAwareOrderComparator;
@@ -35,8 +34,10 @@
class OrderedComposite<S> {
 
 	private List<S> unordered = new ArrayList<S>();
 
+	private List<S> ordered = new ArrayList<S>();
+	
 	@SuppressWarnings("unchecked")
-	private Collection<S> ordered = new TreeSet<S>(new AnnotationAwareOrderComparator());
+	private Comparator<? super S> comparator = new AnnotationAwareOrderComparator();
 
 	private List<S> list = new ArrayList<S>();
 
@@ -72,6 +73,7 @@
class OrderedComposite<S> {
 		else if (!unordered.contains(item)) {
 			unordered.add(item);
 		}
+		Collections.sort(ordered, comparator);
 		list.clear();
 		list.addAll(ordered);
 		list.addAll(unordered);
